
/**
 * 格式化日期
 * @param {date} value 传递日期值进来
 * @param {string} type 日期格式 'yyyy年MM月dd日 hh时mm分ss秒'
 * @returns 
 */
export function dateFormat(value, type = 'yyyy年MM月dd日 hh时mm分ss秒') {

    let _d = new Date(value),
        yyyy = _d.getFullYear(),
        MM = _d.getMonth() + 1,
        // Date.getDate(): number => 03 => 3
        dd = _d.getDate(),
        hh = _d.getHours(),
        mm = _d.getMinutes(),
        ss = _d.getSeconds()

    MM = MM > 9 ? MM : `0${MM}`
    dd = dd > 9 ? dd : `0${dd}`
    hh = hh > 9 ? hh : `0${hh}`
    mm = mm > 9 ? mm : `0${mm}`
    ss = ss > 9 ? ss : `0${ss}`

    // `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss}` => 2021-09-09 09:09:09
    // `${yyyy}年${MM}月${dd}日` => 2021年09月09日 => yyyy年MM月dd
    // return `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss}`
    // 'yyyy年MM月dd日 hh时mm分ss秒'

    let obj = {yyyy, MM, dd, hh, mm, ss}
    return type.replace(/(yyyy)|(ss)|(dd)|(hh)|(mm)|(MM)/g, function(str) {
        return obj[str] // obj['yyyy'] => obj.yyyy
    })
}